package com.course02.order_backend.mapper.LXY;

import com.course02.order_backend.entity.LXY.UserRole;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;

/**
 * 操作用户角色表
 * @author wozhe
 */
@Mapper
public interface UserRoleMapper {

    /**
     * 根据用户ID查询用户角色列表
     * @Param userId
     * @return 列表
     */
    List<UserRole> getUserRoleByUserId(Long id);

    /**
     * 根据角色ID查询所有关联的用户
     */
    List<UserRole> selectByRoleId(@Param("roleId") Long roleId);

    /**
     * 根据用户ID和角色ID查询是否存在关联
     */
    UserRole selectByUserIdAndRoleId(@Param("userId") Long userId, @Param("roleId") Long roleId);

    /**
     * 插入一条用户-角色关联记录
     */
    int insert(UserRole userRole);

    /**
     * 根据用户ID删除所有角色关联（用于重新分配角色）
     */
    int deleteByUserId(@Param("userId") Long userId);

    /**
     * 根据用户ID和角色ID删除关联（删除单个角色）
     */
    int deleteByUserIdAndRoleId(@Param("userId") Long userId, @Param("roleId") Long roleId);
}
